草庐IT

pointers - 指针问题

全部标签

go - 如何在结构初始化器中使用指针类型?

当它是其中一种数字类型的引用类型别名时,我不知道如何初始化结构字段:packagemainimport("fmt""encoding/json")typeNint64*int64typeMyStructstruct{ValueNint64}funcmain(){data,_:=json.Marshal(&MyStruct{Value:??10??})fmt.Println(string(data))} 最佳答案 你不能,你将不得不添加一个额外的步骤playground:funcNewMyStruct(iint64)*MyStruct

go - 使用反射设置指向字段的指针

我有以下结构,并且需要一些字段可以为空,所以我使用指针,主要是为了处理sql空值typeChickenstruct{Idint//NotnullableName*string//canbenullAvgMonthlyEggs*float32//canbenullBirthDate*time.Time//canbenull}所以当我执行以下操作时,我可以看到json结果可以包含值类型的空值,这正是我想要的stringValue:="xx"chicken:=&Chicken{1,&stringValue,nil,nil}chickenJson,_:=json.Marshal(&chicke

go - 对指针和值参数新主义感到困惑

我正在用Go编写一个Web应用程序并使用Neo4j数据库来存储数据。作为Go的Neo4jAPI,我选择neoism.但是,请看下面的代码片段。db,_:=neoism.Connect("http://localhost:7474/db/data")//CreateanodewithaCypherquer//Issueaquery//res1:=[]struct{Astring`json:"n.email"`}{}cq1:=neoism.CypherQuery{//Usebackticksforlongstatements-CypheriswhitespaceindifferentSta

go - "cast"Go中的指针类型如何匹配指向值的类型?

我有一个包含不同变量类型的slice。一些字符串、整数等。我有什么办法可以将指向这些值之一的指针从*interface{}转换为*string或*int32在适当的地方。这是一个演示问题的玩具程序:http://play.golang.org/p/J3zgrYyXPq//StoreastringintheslicevalSlice:=make([]interface{},1)varstrValstring="test"valSlice[0]=strVal//CreateapointertothatstringptrToStr:=&valSlice[0]//Outputs"stringv

go - 自定义 xml 解码器问题

我有多个测试用例通过了,但是这个失败了。我在这里遗漏了什么导致解码器错误地读取了我的目标键的内容?constrespGenericFault1=`SOAP-ENV:ClientFailedtovalidate`typeFaultstruct{FaultCode,FaultStringstring}func(fFault)Error()string{return"FaultCode:'"+f.FaultCode+"'FaultString:'"+f.FaultString+"'"}funcParseFault(b[]byte)error{reader:=bytes.NewReader(b

pointers - 我应该在 struct 字段上还是在 struct 上创建指针?走

我想知道关于指针的最佳实践是什么。我应该在结构上还是在其字段上定义它们。我虽然定义一个指向结构本身的指针是有意义的,但这里有一个我觉得很有趣的例子。如果所有字段都是指针,为什么我不应该使用指向整个结构的指针来获取每个字段的地址?typeTagstruct{Tag*string`json:"tag,omitempty"`SHA*string`json:"sha,omitempty"`URL*string`json:"url,omitempty"`Message*string`json:"message,omitempty"`Tagger*CommitAuthor`json:"tagger

interface - 从未知类型创建指针

是否可以在不提及特定类型(在本例中为SomeStruct)的情况下编写与以下等效的代码?//takesSomeStruct{}andreturns&SomeStruct{}funcMakePointerFromStruct(someStructinterface{})interface{}{obj:=someStruct.(SomeStruct)returninterface{}(&obj)}我创建了一个playground我的实际问题是我需要将session中的一些数据转换为&User{}(我从Redis获得并且采用User{}形式)但是对该反序列化值进行操作的代码什么都不知道关于它

go - golang接口(interface)间conn指针共享

我想要完成的是在多个函数之间共享db.sqlx的指针,除了帖子说传递指针,这很好,但如何在界面中做到这一点?我在任何地方都找不到任何说明这个用法的东西。基本上我所拥有的是一个Datastore类型的接口(interface)。我还有实现数据存储类型的mysql和pgsql。接口(interface)本身工作正常,但问题是我正在尝试为*sqlx.DB创建一个连接函数,以便在实现的接口(interface)内的所有函数之间共享。我认为问题是我对如何在接口(interface)的函数之间共享指针甚至“在哪里”共享它感到困惑。主界面如下所示:var(storageDatastoredb*sql

google-app-engine - Go Appengine 托管 VM 问题 : unknown flag -trimpath

我正在尝试使用托管虚拟机在AppEngine上启动一个Go应用程序。据我所知,我的docker在本地运行良好并且所有依赖项都已满足,但是当我尝试在本地提供服务时,我遇到了以下错误:INFO2015-03-0522:21:14,917containers.py:280]/goroot/pkg/tool/linux_amd64/6g:unknownflag-trimpathINFO2015-03-0522:21:14,922containers.py:280]2015/03/0522:21:14go-app-builder:buildtiming:1×6g(5mstotal),0×gopa

import - Golang 导入问题

我正在尝试使用导入包供内部使用,但遇到了一些问题。我的目录结构如下所示:app/model/file1.gofile2.go...main.go当我尝试构建程序时,出现如下所示的错误:/usr/local/go/src/pkg/model(from$GOROOT)我希望能够在应用程序的任何其他程序中调用模型程序,只需使用:import"app/model"在执行此操作时,我有哪些选择? 最佳答案 你从GOPATH级别导入..你所有的包都应该放在那里。例如,假设您的应用程序在这里:$GOPATH/src/dtrinh100/app/.